首页 > 试题广场 >

给数组加一

[编程题]给数组加一
  • 热度指数:2182 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个用数组表示的数字,即数组中每个数表示一个数位上的数,例如 [1,2,3],表示 123 ,请问给这个数字加一后得到的结果(结果同样以数组的形式返回)。

注意:数组中不可能出现负数,且保证数组的首位即数字的首位不可能是 0 。

数据范围: 数组长度满足 ,数组中每个数满足
示例1

输入

[1,2,3]

输出

[1,2,4]
示例2

输入

[1,9]

输出

[2,0]
示例3

输入

[9]

输出

[1,0]
class Solution:
    def plusOne(self , nums: List[int]) -> List[int]:
        # write code here
        n = int(''.join(map(str,nums)))+1
        return [int(d) for d in str(n)]

发表于 2022-04-25 16:25:32 回复(0)
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#

# @param nums int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def plusOne(self , nums: List[int]) -> List[int]:
        # write code here
        nums[-1] += 1 #末位+1
        add = 0 #进位标识
        for i in reversed(range(len(nums))): #反着遍历每一个元素看看有没有进位, 有就下一位+1
            nums[i] += add
            if nums[i] >= 10:
                nums[i] -= 10
                add = 1
            else:
                add = 0
        if add == 1:#999999 + 1的情况
            nums.insert(0, 1) #在最前面加一位,填充1
        return nums
发表于 2022-04-07 19:07:02 回复(0)